package main

import (
	"fmt"
	"learn_grpc/1_Rpc/5_client_loca_rpc/client_proxy"
)

func main() {
	//客户端第一步: 1、建立连接，rpc.Dial拨号连接，指定协议和地址端口
	//client, err := rpc.Dial("tcp", "localhost:1234")
	//if err != nil {
	//	panic("连接失败" + err.Error())
	//}
	////客户端第二步： 调用函数，采用Call()   格式Call("服务端注册到rpc名称.对应对象上的方法",入参1,入参2)
	//var reply *string = new(string) //指针要使用必须要有地址，指针默认是nill没有地址，所有需要new,不然使用报错
	////使用servername统一定义模块中的变量名
	//err = client.Call(handler.HolleWorldServer_1+".Hello", "World", reply)
	//if err != nil {
	//	panic(err)
	//}
	////打印结果，*取指针的值
	//fmt.Println(*reply)
	// 上面是为封装client之前的调用方式，下面是封装client后的调用方式，实现了客户端的不关注服务名和方法
	client2 := client_proxy.NewHelloServviceClinet("tcp", "localhost:1234")
	var reply2 string
	err2 := client2.Hello("jiangsujian", &reply2)
	if err2 != nil {
		panic(err2)
	}
	fmt.Println(reply2)
}
